package util;

public class Packets {

	public static String getClientMessageType(int type, int type2) {
		String message = null;
		switch(type){
		case 0x00: message = "[C] d0 ProtocolVersion"; break;
		case 0x01: message = "[C] 01 MoveBackwardToLocation"; break;
		case 0x03: message = "[C] 03 EnterWorld"; break;
		case 0x04: message = "[C] 04 Action"; break;
		case 0x08: message = "[C] 08 AuthLogin"; break;
		case 0x09: message = "[C] 09 Logout"; break;
		case 0x0a: message = "[C] 0a AttackRequest"; break;
		case 0x0b: message = "[C] 0b CharacterCreate"; break;
		case 0x0c: message = "[C] 0c CharacterDelete"; break;
		case 0x0d: message = "[C] 0d CharacterSelected"; break;
		case 0x0e: message = "[C] 0e NewCharacter"; break;
		case 0x0f: message = "[C] 0f RequestItemList"; break;
		case 0x11: message = "[C] 11 RequestUnEquipItem"; break;
		case 0x12: message = "[C] 12 RequestDropItem"; break;
		case 0x14: message = "[C] 14 UseItem"; break;
		case 0x15: message = "[C] 15 TradeRequest"; break;
		case 0x16: message = "[C] 16 AddTradeItem"; break;
		case 0x17: message = "[C] 17 TradeDone"; break;
		case 0x1a: message = "[C] 1a DummyPacket"; break;
		case 0x1b: message = "[C] 1b RequestSocialAction"; break;
		case 0x1c: message = "[C] 1c ChangeMoveType2"; break;
		case 0x1d: message = "[C] 1d ChangeWaitType2"; break;
		case 0x1e: message = "[C] 1e RequestSellItem"; break;
		case 0x1f: message = "[C] 1f RequestBuyItem"; break;
		case 0x20: message = "[C] 20 RequestLinkHtml"; break;
		case 0x21: message = "[C] 21 RequestBypassToServer"; break;
		case 0x22: message = "[C] 22 RequestBBSwrite"; break;
		case 0x23: message = "[C] 23 DummyPacket"; break;
		case 0x24: message = "[C] 24 RequestJoinPledge"; break;
		case 0x25: message = "[C] 25 RequestAnswerJoinPledge"; break;
		case 0x26: message = "[C] 26 RequestWithdrawalPledge"; break;
		case 0x27: message = "[C] 27 RequestOustPledgeMember"; break;
		case 0x29: message = "[C] 29 RequestJoinParty"; break;
		case 0x2a: message = "[C] 2a RequestAnswerJoinParty"; break;
		case 0x2b: message = "[C] 2b RequestWithDrawalParty"; break;
		case 0x2c: message = "[C] 2c RequestOustPartyMember"; break;
		case 0x2e: message = "[C] 2e RequestMagicSkillList "; break;
		case 0x2f: message = "[C] 2f RequestMagicSkillUse"; break;
		case 0x30: message = "[C] 30 Appearing"; break;
		case 0x31: message = "[C] 31 SendWareHouseDepositList"; break;
		case 0x32: message = "[C] 32 SendWareHouseWithDrawList"; break;
		case 0x33: message = "[C] 33 RequestShortCutReg"; break;
		case 0x34: message = "[C] 34 DummyPacket"; break;
		case 0x35: message = "[C] 35 RequestShortCutDel"; break;
		case 0x36: message = "[C] 36 CannotMoveAnymore"; break;
		case 0x37: message = "[C] 37 RequestTargetCanceld"; break;
		case 0x38: message = "[C] 38 Say2"; break;
		case 0x3c: message = "[C] 3c RequestPledgeMemberList"; break;
		case 0x3e: message = "[C] 3e DummyPacket"; break;
		case 0x3f: message = "[C] 3f RequestSkillList"; break;
		case 0x42: message = "[C] 42 RequestGetOnVehicle"; break;
		case 0x43: message = "[C] 43 RequestGetOffVehicle"; break;
		case 0x44: message = "[C] 44 AnswerTradeRequest"; break;
		case 0x45: message = "[C] 45 RequestActionUse"; break;
		case 0x46: message = "[C] 46 RequestRestart"; break;
		case 0x48: message = "[C] 48 ValidatePosition"; break;
		case 0x4d: message = "[C] 4d RequestStartPledgeWar"; break;
		case 0x4e: message = "[C] 4e RequestReplyStartPledgeWar"; break;
		case 0x4f: message = "[C] 4f RequestStopPledgeWar"; break;
		case 0x50: message = "[C] 50 RequestReplyStopPledgeWar"; break;
		case 0x51: message = "[C] 51 RequestSurrenderPledgeWar"; break;
		case 0x52: message = "[C] 52 RequestReplySurrenderPledgeWar"; break;
		case 0x53: message = "[C] 53 RequestSetPledgeCrest"; break;
		case 0x55: message = "[C] 55 RequestGiveNickName"; break;
		case 0x57: message = "[C] 57 RequestShowBoard"; break;
		case 0x58: message = "[C] 58 RequestEnchantItem"; break;
		case 0x59: message = "[C] 59 RequestDestroyItem"; break;
		case 0x5b: message = "[C] 5b SendBypassBuildCmd"; break;
		case 0x5c: message = "[C] 5c RequestMoveToLocationInVehicle"; break;
		case 0x5d: message = "[C] 5d CannotMoveAnymoreInVehicle"; break;
		case 0x5e: message = "[C] 5e RequestFriendInvite"; break;
		case 0x5f: message = "[C] 5f RequestAnswerFriendInvite"; break;
		case 0x60: message = "[C] 60 RequestFriendList"; break;
		case 0x61: message = "[C] 61 RequestFriendDel"; break;
		case 0x62: message = "[C] 62 CharacterRestore"; break;
		case 0x63: message = "[C] 63 RequestQuestList"; break;
		case 0x64: message = "[C] 64 RequestQuestAbort"; break;
		case 0x66: message = "[C] 66 RequestPledgeInfo"; break;
		case 0x68: message = "[C] 68 RequestPledgeCrest"; break;
		case 0x69: message = "[C] 69 RequestSurrenderPersonally"; break;
		case 0x6b: message = "[C] 6b RequestAquireSkillInfo"; break;
		case 0x6c: message = "[C] 6c RequestAquireSkill"; break;
		case 0x6d: message = "[C] 6d RequestRestartPoint"; break;
		case 0x6e: message = "[C] 6e RequestGMCommand"; break;
		case 0x6f: message = "[C] 6f RequestPartyMatchConfig"; break;
		case 0x70: message = "[C] 70 RequestPartyMatchList"; break;
		case 0x71: message = "[C] 71 RequestPartyMatchDetail"; break;
		case 0x72: message = "[C] 72 RequestCrystallizeItem"; break;
		case 0x73: message = "[C] 73 RequestPrivateStoreManageSell"; break;
		case 0x74: message = "[C] 74 SetPrivateStoreListSell"; break;
		case 0x76: message = "[C] 76 RequestPrivateStoreQuitSell"; break;
		case 0x77: message = "[C] 77 SetPrivateStoreMsgSell"; break;
		case 0x79: message = "[C] 79 RequestPrivateStoreBuy"; break;
		case 0x7f: message = "[C] 7f RequestPetition"; break;
		case 0x80: message = "[C] 80 RequestPetitionCancel"; break;
		case 0x81: message = "[C] 81 RequestGmList"; break;
		case 0x82: message = "[C] 82 RequestJoinAlly"; break;
		case 0x83: message = "[C] 83 RequestAnswerJoinAlly"; break;
		case 0x84: message = "[C] 84 AllyLeave"; break;
		case 0x85: message = "[C] 85 AllyDismiss"; break;
		case 0x87: message = "[C] 87 RequestSetAllyCrest"; break;
		case 0x88: message = "[C] 88 RequestAllyCrest"; break;
		case 0x89: message = "[C] 89 RequestChangePetName"; break;
		case 0x8a: message = "[C] 8a RequestPetUseItem"; break;
		case 0x8b: message = "[C] 8b RequestGiveItemToPet"; break;
		case 0x8c: message = "[C] 8c RequestGetItemFromPet"; break;
		case 0x8e: message = "[C] 8e RequestAllyInfo"; break;
		case 0x8f: message = "[C] 8f RequestPetGetItem"; break;
		case 0x90: message = "[C] 90 RequestPrivateStoreManageBuy"; break;
		case 0x91: message = "[C] 91 SetPrivateStoreListBuy"; break;
		case 0x93: message = "[C] 93 RequestPrivateStoreQuitBuy"; break;
		case 0x94: message = "[C] 94 SetPrivateStoreMsgBuy"; break;
		case 0x96: message = "[C] 96 RequestPrivateStoreSell"; break;
		case 0x9d: message = "[C] 9d RequestSkillCoolTime"; break;
		case 0xa0: message = "[C] a0 RequestBlock"; break;
		case 0xa2: message = "[C] a2 RequestSiegeAttackerList"; break;
		case 0xa3: message = "[C] a3 RequestSiegeDefenderList"; break;
		case 0xa4: message = "[C] a4 RequestJoinSiege"; break;
		case 0xa5: message = "[C] a5 RequestConfirmSiegeWaitingList"; break;
		case 0xa7: message = "[C] a7 MultiSellChoose"; break;
		case 0xa8: message = "[C] a8 NetPing"; break;
		case 0xaa: message = "[C] aa RequestUserCommand"; break;
		case 0xab: message = "[C] ab SnoopQuit"; break;
		case 0xac: message = "[C] ac RequestRecipeBookOpen"; break;
		case 0xad: message = "[C] ad RequestRecipeBookDestroy"; break;
		case 0xae: message = "[C] ae RequestRecipeItemMakeInfo"; break;
		case 0xaf: message = "[C] af RequestRecipeItemMakeSelf"; break;
		case 0xb0: message = "[C] b0 RequestRecipeShopManageList"; break;
		case 0xb1: message = "[C] b1 RequestRecipeShopMessageSet"; break;
		case 0xb2: message = "[C] b2 RequestRecipeShopListSet"; break;
		case 0xb3: message = "[C] b3 RequestRecipeShopManageQuit"; break;
		case 0xb5: message = "[C] b5 RequestRecipeShopMakeInfo"; break;
		case 0xb6: message = "[C] b6 RequestRecipeShopMakeItem"; break;
		case 0xb7: message = "[C] b7 RequestRecipeShopManagePrev"; break;
		case 0xb8: message = "[C] b8 ObserverReturn"; break;
		case 0xb9: message = "[C] b9 RequestEvaluate"; break;
		case 0xba: message = "[C] ba RequestHennaList"; break;
		case 0xbb: message = "[C] bb RequestHennaItemInfo"; break;
		case 0xbc: message = "[C] bc RequestHennaEquip"; break;
		case 0xc0: message = "[C] c0 RequestPledgePower"; break;
		case 0xc1: message = "[C] c1 RequestMakeMacro"; break;
		case 0xc2: message = "[C] c2 RequestDeleteMacro"; break;
		case 0xc6: message = "[C] c6 RequestWearItem"; break;
		case 0xc7: message = "[C] c7 RequestSSQStatus"; break;
		case 0xca: message = "[C] ca GameGuardReply"; break;
		case 0xcc: message = "[C] cc RequestSendFriendMsg"; break;
		case 0xcd: message = "[C] cd RequestShowMiniMap"; break;
		case 0xd0:
			switch (type2) {
			case 0x01: message = "[C] d0:01 RequestOustFromPartyRoom"; break;
			case 0x02: message = "[C] d0:02 RequestDismissPartyRoom"; break;
			case 0x03: message = "[C] d0:03 RequestWithdrawPartyRoom"; break;
			case 0x04: message = "[C] d0:04 RequestChangePartyLeader"; break;
			case 0x05: message = "[C] d0:05 RequestAutoSoulShot"; break;
			case 0x06: message = "[C] d0:06 RequestExEnchantSkillInfo"; break;
			case 0x07: message = "[C] d0:07 RequestExEnchantSkill"; break;
			case 0x08: message = "[C] d0:08 RequestManorList"; break;
			case 0x09: message = "[C] d0:09 RequestProcureCropList"; break;
			case 0x0a: message = "[C] d0:0a RequestSetSeed"; break;
			case 0x0b: message = "[C] d0:0b RequestSetCrop"; break;
			case 0x0c: message = "[C] d0:0c RequestWriteHeroWords"; break;
			case 0x0d: message = "[C] d0:0d RequestExAskJoinMPCC"; break;
			case 0x0e: message = "[C] d0:0e RequestExAcceptJoinMPCC"; break;
			case 0x0f: message = "[C] d0:0f RequestExOustFromMPCC"; break;
			case 0x10: message = "[C] d0:10 RequestExPledgeCrestLarge"; break;
			case 0x11: message = "[C] d0:11 RequestExSetPledgeCrestLarge"; break;
			case 0x12: message = "[C] d0:12 RequestOlympiadObserverEnd"; break;
			case 0x13: message = "[C] d0:13 RequestOlympiadMatchList"; break;
			default:   message = "[C] d0:" + Integer.toHexString(type2 & 0xff) + " unknown packet type2"; break;
			}
			break;
		case 0xee: message = "[C] ee RequestChangePartyLeader"; break;
		default:   message = "[C] " + Integer.toHexString(type & 0xff) + " unknown packet type1"; break;
		}
		return message;
	}

	public static String getServerMessageType(int type, int type2) {
		String message = null;
		switch(type) {
		case 0x25: message = "[S] 25 ActionFailed"; break;
		case 0xae: message = "[S] ae AllyCrest"; break;
		case 0x7a: message = "[S] 7a AllyInfo"; break;
		case 0x8a: message = "[S] 8a AquireSkillList"; break;
		case 0x8b: message = "[S] 8b AquireSkillInfo"; break;
		case 0xa8: message = "[S] a8 AskJoinAlly"; break;
		case 0x7d: message = "[S] 7d AskJoinFriend"; break;
		case 0x39: message = "[S] 39 AskJoinParty"; break;
		case 0x32: message = "[S] 32 AskJoinPledge"; break;
		case 0x05: message = "[S] 05 Attack"; break;
		case 0x0a: message = "[S] 0a AttackCanceld"; break;
		case 0x14: message = "[S] 14 AuthLoginFail"; break;
		case 0x2b: message = "[S] 2b AutoAttackStart"; break;
		case 0x2c: message = "[S] 2c AutoAttackStop"; break;
		case 0x62: message = "[S] 62 BeginRotation"; break;
		case 0x11: message = "[S] 11 BuyList"; break;
		case 0xe8: message = "[S] e8 BuyListSeed"; break;
		case 0xf1: message = "[S] f1 CameraMode"; break;
		case 0xe1: message = "[S] e1 ChairSit"; break;
		case 0x2e: message = "[S] 2e ChangeMoveType"; break;
		case 0x2f: message = "[S] 2f ChangeWaitType"; break;
		case 0x1a: message = "[S] 1a CharCreateFail"; break;
		case 0x19: message = "[S] 19 CharCreateOk"; break;
		case 0x24: message = "[S] 24 CharDeleteFail"; break;
		case 0x23: message = "[S] 23 CharDeleteOk"; break;
		case 0x03: message = "[S] 03 CharInfo"; break;
		case 0x01: message = "[S] 01 CharMoveToLocation"; break;
		case 0x15: message = "[S] 15 CharSelected"; break;
		case 0x13: message = "[S] 13 CharSelectInfo"; break;
		case 0x17: message = "[S] 17 CharTemplates"; break;
		case 0x6f: message = "[S] 6f ChooseInventoryItem"; break;
		case 0x4a: message = "[S] 4a CreatureSay"; break;
		case 0x12: message = "[S] 12 DeleteObject"; break;
		case 0xd4: message = "[S] d4 Dice"; break;
		case 0x06: message = "[S] 06 Die"; break;
		case 0x4c: message = "[S] 4c DoorInfo"; break;
		case 0x4d: message = "[S] 4d DoorStatusUpdate"; break;
		case 0x0c: message = "[S] 0c DropItem"; break;
		case 0xc4: message = "[S] c4 Earthquake"; break;
		case 0x81: message = "[S] 81 EnchantResult"; break;
		case 0x4b: message = "[S] 4b EquipUpdate"; break;
		case 0xfe:
			switch (type2) {
			case 0x12: message = "[S] fe:12 ExAutoSoulShot"; break;
			case 0x13: message = "[S] fe:13 ExFishingStart"; break;
			case 0x14: message = "[S] fe:14 ExFishingEnd"; break;
			case 0x15: message = "[S] fe:15 ExFishingStartCombat"; break;
			case 0x16: message = "[S] fe:16 ExFishingHpRegen"; break;
			case 0x17: message = "[S] fe:17 ExEnchantSkillList"; break;
			case 0x18: message = "[S] fe:18 ExEnchantSkillInfo"; break;
			case 0x19: message = "[S] fe:19 ExQuestInfo"; break;
			case 0x1b: message = "[S] fe:1b ExSendManorList"; break;
			case 0x23: message = "[S] fe:23 ExHeroList"; break;
			case 0x28: message = "[S] fe:28 ExPledgeCrestLarge"; break;
			case 0x29: message = "[S] fe:29 OlympiadUserInfo"; break;
			case 0x2a: message = "[S] fe:2a ExOlympiadSpelledInfo"; break;
			case 0x2b: message = "[S] fe:2b ExOlympiadMode"; break;
			case 0x2d: message = "[S] fe:2d ExMailArrived"; break;
			case 0x2e: message = "[S] fe:2e ExStorageMaxCount"; break;
			default:   message = "[S] fe:"+Integer.toHexString(type2 & 0xff)+" unknown packet"; break;
			}
			break;
		case 0xfa: message = "[S] fa FriendList"; break;
		case 0xfd: message = "[S] fd FriendRecvMsg"; break;
		case 0xf9: message = "[S] f9 GameGuardQuery"; break;
		case 0x0d: message = "[S] 0d GetItem"; break;
		case 0x5d: message = "[S] 5d GetOffVehicle"; break;
		case 0x5c: message = "[S] 5c GetOnVehicle"; break;
		case 0x8f: message = "[S] 8f GMViewCharacterInfo"; break;
		case 0x94: message = "[S] 94 GMViewItemList"; break;
		case 0x90: message = "[S] 90 GMViewPledgeInfo"; break;
		case 0x93: message = "[S] 93 GMViewQuestList"; break;
		case 0x91: message = "[S] 91 GMViewSkillInfo"; break;
		case 0x95: message = "[S] 95 GMViewWarehouseWithdrawList"; break;
		case 0xe2: message = "[S] e2 HennaEquipList"; break;
		case 0xe4: message = "[S] e4 HennaInfo"; break;
		case 0xe3: message = "[S] e3 HennaItemInfo"; break;
		case 0x27: message = "[S] 27 InventoryUpdate"; break;
		case 0x1b: message = "[S] 1b ItemList"; break;
		case 0x3a: message = "[S] 3a JoinParty"; break;
		case 0x33: message = "[S] 33 JoinPledge"; break;
		case 0x00: message = "[S] 00 KeyPacket"; break;
		case 0x7e: message = "[S] 7e LeaveWorld"; break;
		case 0x7f: message = "[S] 7f MagicEffectIcons"; break;
		case 0x49: message = "[S] 49 MagicSkillCanceld"; break;
		case 0x8e: message = "[S] 8e MagicSkillLaunched"; break;
		case 0x48: message = "[S] 48 MagicSkillUser"; break;
		case 0x30: message = "[S] 30 ManagePledgePower"; break;
		case 0xdd: message = "[S] dd MonRaceInfo"; break;
		case 0x71: message = "[S] 71 MoveOnVehicle"; break;
		case 0x60: message = "[S] 60 MoveToPawn"; break;
		case 0xd0: message = "[S] d0 MultiSellList"; break;
		case 0xa6: message = "[S] a6 MyTargetSelected"; break;
		case 0xc8: message = "[S] c8 NormalCamera"; break;
		case 0x0f: message = "[S] 0f NpcHtmlMessage"; break;
		case 0x16: message = "[S] 16 NpcInfo"; break;
		case 0xdf: message = "[S] df ObservationMode"; break;
		case 0xe0: message = "[S] e0 ObservationReturn"; break;
		case 0x5b: message = "[S] 5b OnVehicleCheckLocation"; break;
		case 0x97: message = "[S] 97 PartyMatchDetail"; break;
		case 0x96: message = "[S] 96 PartyMatchList"; break;
		case 0xa7: message = "[S] a7 PartyMemberPosition"; break;
		case 0x4f: message = "[S] 4f PartySmallWindowAdd"; break;
		case 0x4e: message = "[S] 4e PartySmallWindowAll"; break;
		case 0x51: message = "[S] 51 PartySmallWindowDelete"; break;
		case 0x50: message = "[S] 50 PartySmallWindowDeleteAll"; break;
		case 0x52: message = "[S] 52 PartySmallWindowUpdate"; break;
		case 0xee: message = "[S] ee PartySpelled"; break;
		case 0xb6: message = "[S] b6 PetDelete"; break;
		case 0xb1: message = "[S] b1 PetInfo"; break;
		case 0xb3: message = "[S] b3 InventoryUpdate"; break;
		case 0xb2: message = "[S] b2 PetItemList"; break;
		case 0xb0: message = "[S] b0 PetStatusShow"; break;
		case 0xb5: message = "[S] b5 PetStatusUpdate"; break;
		case 0x98: message = "[S] 98 PlaySound"; break;
		case 0x6c: message = "[S] 6c PledgeCrest"; break;
		case 0x83: message = "[S] 83 PledgeInfo"; break;
		case 0x88: message = "[S] 88 PledgeShowInfoUpdate"; break;
		case 0x55: message = "[S] 55 PledgeShowMemberListAdd"; break;
		case 0x53: message = "[S] 53 PledgeShowMemberListAll"; break;
		case 0x56: message = "[S] 56 PledgeShowMemberListDelete"; break;
		case 0x82: message = "[S] 82 PledgeShowMemberListDeleteAll"; break;
		case 0xcd: message = "[S] cd PledgeStatusChanged"; break;
		case 0xb8: message = "[S] b8 PrivateStoreListBuy"; break;
		case 0x9b: message = "[S] 9b PrivateStoreListSell"; break;
		case 0xb7: message = "[S] b7 PrivateSellListBuy"; break;
		case 0x9a: message = "[S] 9a PrivateSellListSell"; break;
		case 0xb9: message = "[S] b9 PrivateStoreMsgBuy"; break;
		case 0x9c: message = "[S] 9c PrivateStoreMsgSell"; break;
		case 0x80: message = "[S] 80 QuestList"; break;
		case 0xeb: message = "[S] eb RadarControl"; break;
		case 0xd6: message = "[S] d6 RecipeBookItemList"; break;
		case 0xd7: message = "[S] d7 RecipeItemMakeInfo"; break;
		case 0xda: message = "[S] da RecipeShopItemInfo"; break;
		case 0xd8: message = "[S] d8 RecipeShopManageList"; break;
		case 0xdb: message = "[S] db RecipeShopMsg"; break;
		case 0xd9: message = "[S] d9 RecipeShopSellList"; break;
		case 0x5f: message = "[S] 5f RestartResponse"; break;
		case 0x07: message = "[S] 07 Revive"; break;
		case 0x86: message = "[S] 86 Ride"; break;
		case 0x10: message = "[S] 10 SellList"; break;
		case 0xe9: message = "[S] e9 SellListProcure"; break;
		case 0xe7: message = "[S] e7 SendMacroList"; break;
		case 0x22: message = "[S] 22 SendTradeDone"; break;
		case 0x5e: message = "[S] 5e SendTradeRequest"; break;
		case 0x76: message = "[S] 76 SetToLocation"; break;
		case 0x6d: message = "[S] 6d SetupGauge"; break;
		case 0x45: message = "[S] 45 ShortCutInit"; break;
		case 0x44: message = "[S] 44 ShortCutRegister"; break;
		case 0x6e: message = "[S] 6e ShowBoard"; break;
		case 0xdc: message = "[S] dc ShowCalculator"; break;
		case 0x9d: message = "[S] 9d ShowMiniMap"; break;
		case 0xca: message = "[S] ca SiegeAttackerList"; break;
		case 0xcb: message = "[S] cb SiegeDefenderList"; break;
		case 0xc9: message = "[S] c9 SiegeInfo"; break;
		case 0xf8: message = "[S] f8 SignsSky"; break;
		case 0x58: message = "[S] 58 SkillList"; break;
		case 0xd5: message = "[S] d5 Snoop"; break;
		case 0x2d: message = "[S] 2d SocialAction"; break;
		case 0x0b: message = "[S] 0b SpawnItem"; break;
		case 0xc7: message = "[S] c7 SpecialCamera"; break;
		case 0xf5: message = "[S] f5 RecordUpdate"; break;
		case 0x65: message = "[S] 65 StartPledgeWar"; break;
		case 0x99: message = "[S] 99 StaticObjectPacket"; break;
		case 0x0e: message = "[S] 0e StatusUpdate"; break;
		case 0x47: message = "[S] 47 StopMove"; break;
		case 0x72: message = "[S] 72 StopMoveInVehicle"; break;
		case 0x67: message = "[S] 67 StopPledgeWar"; break;
		case 0x63: message = "[S] 63 StopRotation"; break;
		case 0x1c: message = "[S] 1c SunRise"; break;
		case 0x1d: message = "[S] 1d SunSet"; break;
		case 0x69: message = "[S] 69 SurrenderPledgeWar"; break;
		case 0x64: message = "[S] 64 SystemMessage"; break;
		case 0x29: message = "[S] 29 TargetSelected"; break;
		case 0x2a: message = "[S] 2a TargetUnselected"; break;
		case 0x28: message = "[S] 28 TeleportToLocation"; break;
		case 0x21: message = "[S] 21 TradeOtherAdd"; break;
		case 0x20: message = "[S] 20 TradeOwnAdd"; break;
		case 0x1e: message = "[S] 1e TradeStart"; break;
		case 0xa0: message = "[S] a0 TutorialShowHtml"; break;
		case 0xa1: message = "[S] a1 TutorialShowQuestionMark"; break;
		case 0x04: message = "[S] 04 UserInfo"; break;
		case 0x61: message = "[S] 61 ValidateLocation"; break;
		case 0x73: message = "[S] 73 ValidateLocationInVehicle"; break;
		case 0x5a: message = "[S] 5a VehicleDeparture"; break;
		case 0x59: message = "[S] 59 VehicleInfo"; break;
		case 0x41: message = "[S] 41 WareHouseDepositList"; break;
		case 0x42: message = "[S] 42 WareHouseWithdrawalList"; break;
		case 0xef: message = "[S] ef WearList"; break;
		case 0xce: message = "[S] ce RelationChangedPacket"; break;
		case 0x40: message = "[S] 40 MagicAndSkillList"; break;
		case 0xf7: message = "[S] f7 AgitDecoInfoPacket"; break;
		default:   message = "[S] "+Integer.toHexString(type & 0xff)+" unknown packet"; break;
		}
		return message;
	}
}

